Visualization and control of application interactions

ABSTRACT

Systems and methods for visualization and control of application interactions are disclosed. An approach includes receiving a selection of a primary application, retrieving information regarding a relationship between the selected primary application and at least one of another application and a computer device resource, and calculating a thickness value for the relationship, wherein the thickness value represents at least one parameter of interest to a user. The approach includes displaying icons representing the selected primary application and the other application(s) and computer device resource(s), and displaying at least one relationship line between the selected primary application and the other application(s)/computer device resource(s), wherein the at least one relationship line has a line weight based on the thickness value.

BACKGROUND

The present invention relates generally to control of applicationinteractions, and more particularly, to a system and method forgraphical representation and control of relationships between a computerdevice application and other applications and/or computer deviceresources.

It is problematic to troubleshoot relationships between applications ona computer device and to comprehend application interactions with oneanother and with computer device resources. For example, a smartphone ortablet that has one or more applications may cause undesirable effectssuch as: sending physical location information to unauthorized cloudapplications; accessing personal contact lists; consuming a largeproportion of network interface capacity; consuming a larger proportionof storage; accessing other applications or data within thoseapplications; and causing other applications to activate hardwareresources. Present methods for visualizing application interactions arelimited to a few rudimentary methods for representing battery usage.

Relationships between entities, such as applications and systemresources (e.g., memory, central processing unit, battery, and systemdevices) in an operating system may be controlled through the operatingsystem security models and may involve some type of data store thatrecords decisions on access to those resources. In the case ofapplications, this data store is often populated by decisions made bythe device owner/administrator through explicit requests for sharing ofinformation between applications and/or resources through a user promptand approval (e.g., “allow this application to access your addressbook?”). These systems allow these decisions/settings to be changedusing basic but cumbersome processes of selecting the application andmanually turning off or on the permissions for each attribute/sharerequest.

Certain applications, such as some social media applications, allow auser to control some interactions of the application with otherapplications and/or resources. However, such control is limited to onlyselect interactions, and it may not be possible to verify that theuser's control selection is being implemented by the application.

SUMMARY

In an aspect of the invention, a computer-implemented method includesreceiving a selection of a primary application, retrieving informationregarding a relationship between the selected primary application and atleast one of another application and a computer device resource, andcalculating a thickness value for the relationship, wherein thethickness value represents at least one parameter of interest to a user.The method also includes displaying icons representing the selectedprimary application and the other application(s)/computer deviceresource(s), and displaying at least one relationship line extendingbetween the selected primary application and the otherapplication(s)/computer device resource(s), wherein the at least onerelationship line has a line weight based on the thickness value.

In another aspect of the invention, a computer program product includesa computer usable tangible storage medium having readable program codeembodied in the tangible storage medium. The computer program productincludes at least one component operable to receive a selection of aprimary application, retrieve information regarding a first relationshipbetween the primary application and another application, and retrieveinformation regarding a second relationship between the primaryapplication and a computer device resource. At least one component isfurther operable to display icons representing the primary application,the other application, and the computer device resource, display a firstrelationship line between the primary application and the otherapplication, and display a second relationship line between the primaryapplication and the computer device resource. Each of the first andsecond relationship lines has a line weight, line type, line color, linebehavior, or a combination thereof, that visually imparts relationshipinformation to a user.

In another aspect of the invention, there is a system for visualizingand controlling application interactions. The system includes a CPU, acomputer readable memory, and a computer readable storage media. Thesystem also includes program instructions to retrieve informationregarding a first relationship between a primary application and anotherapplication. The system further includes program instructions toretrieve information regarding a second relationship between the primaryapplication and a computer device resource, and program instructions todisplay icons representing the primary application, the otherapplication, and the computer device resource. The system includesprogram instructions to display a first relationship line between theprimary application and the other application, and program instructionsto display a second relationship line between the primary applicationand the computer device resource, wherein each of the first and secondrelationship lines has a line weight, line type, line behavior and/orline color that imparts information regarding at least one parameter toa user. The system includes additional program instructions to receive aselection of one of the first and second relationship lines, programinstructions to display at least one parameter control action based onthe selection, program instructions to receive a command to execute theat least one parameter control action, and program instructions toexecute the at least one parameter control action, wherein the programinstructions are stored on the computer readable storage medium forexecution by the CPU via the computer readable memory.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is described in the detailed description whichfollows, in reference to the noted plurality of drawings by way ofnon-limiting examples of exemplary embodiments of the present invention.

FIG. 1 depicts a computing infrastructure according to an embodiment ofthe present invention.

FIG. 2 shows an exemplary system in accordance with aspects of theinvention.

FIG. 3 shows a flowchart of steps of a method in accordance with aspectsof the invention.

FIG. 4 shows and exemplary table in accordance with aspects of theinvention.

FIG. 5 shows an exemplary parameter control window in accordance withaspects of the invention.

DETAILED DESCRIPTION

The present invention relates generally to computer-based visualizationand control of application interactions or relationships. In particular,the present invention addresses how to visually represent and manipulaterelationships pertaining to data and resource sharing, access, andutilization between applications and computer device resources, and maybe utilized in conjunction with computer devices whose usage culture ishighly graphical, such as smartphones, tablets, etc. Implementations ofthe present invention can be used when a computer device user wishes tovisualize and manage the relationship between a primary application andother applications and/or computer device resources. In embodiments, agraphical user interface (GUI) visually illustrates relationshipsbetween a primary application/resource and other applications andcomputer device resources, and enables direct manipulation of thoserelationships. The present invention provides a more intuitive and userfriendly interface for both visualizing and managing these relationshipsthrough a computer device control module.

In embodiments, a diagram is generated on a computer device displayshowing relationship lines between a primary application icon and otherapplication and/or computer device resource icons (e.g., power source,memory, touch screen, etc.). The relationship lines visually impartinformation regarding the relationship between the primary applicationand the other applications and/or resources to a user. The relationshipinformation may be, for example, information regarding a variety ofparameters of interest to a user, such as memory usage or power usage.By way of example, a relationship line extending between a social mediaapplication icon and a battery icon may have thin line weight when thesocial media application is not drawing a lot of power from the battery,and may have a thick line weight when the social media application isdrawing a lot of power from the battery. Accordingly, a user can easilyvisualize the relationship between the social media application and thebattery (i.e. power usage of the social media application). Line colors,line behaviors (e.g., flashing lines), and/or line styles (e.g., dashedlines, dotted lines, etc.) may be used to visually convey additionalrelationship information to a user. For example, a flashing red linecolor may alert a user that the social media application is drawing morepower from the battery than is desirable based on a predeterminedthreshold value. By way of another example, a dashed line between thesocial media application icon and a contact list icon may indicate thatthe social media application has read only access to the contact list.Additional examples of relationship information that may be visuallyconveyed to a user utilizing the present invention are provided in thedetailed discussion below.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowcharts and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowcharts may represent a module, segment, or portion of instructions,which comprises one or more executable instructions for implementing thespecified logical function(s). In some alternative implementations, thefunctions noted in the block may occur out of the order noted in thefigures. For example, two blocks shown in succession may, in fact, beexecuted substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved. It will also be noted that each block of the flowchartillustrations, and combinations of blocks in the flowchartillustrations, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts or carry outcombinations of special purpose hardware and computer instructions.

Referring now to FIG. 1, a schematic of an example of a computinginfrastructure is shown. Computing infrastructure 10 is only one exampleof a suitable computing infrastructure and is not intended to suggestany limitation as to the scope of use or functionality of embodiments ofthe invention described herein. Regardless, computing infrastructure 10is capable of being implemented and/or performing any of thefunctionality set forth hereinabove.

In computing infrastructure 10 there is a computer system (or server)12, which is operational with numerous other general purpose or specialpurpose computing system environments or configurations. Examples ofwell-known computing systems, environments, and/or configurations thatmay be suitable for use with computer system 12 include, but are notlimited to, personal computer systems, server computer systems, thinclients, thick clients, hand-held or laptop devices, multiprocessorsystems, microprocessor-based systems, set top boxes, programmableconsumer electronics, network PCs, minicomputer systems, mainframecomputer systems, and distributed cloud computing environments thatinclude any of the above systems or devices, and the like.

Computer system 12 may be described in the general context of computersystem executable instructions, such as program modules, being executedby a computer system. Generally, program modules may include routines,programs, objects, components, logic, data structures, and so on thatperform particular tasks or implement particular abstract data types.Computer system 12 may be practiced in distributed cloud computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed cloudcomputing environment, program modules may be located in both local andremote computer system storage media including memory storage devices.

As shown in FIG. 1, computer system 12 in computing infrastructure 10 isshown in the form of a general-purpose computing device. The componentsof computer system 12 may include, but are not limited to, one or moreprocessors or processing units (e.g., CPU) 16, a system memory 28, and abus 18 that couples various system components including system memory 28to processor 16.

Bus 18 represents one or more of any of several types of bus structures,including a memory bus or memory controller, a peripheral bus, anaccelerated graphics port, and a processor or local bus using any of avariety of bus architectures. By way of example, and not limitation,such architectures include Industry Standard Architecture (ISA) bus,Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, VideoElectronics Standards Association (VESA) local bus, and PeripheralComponent Interconnects (PCI) bus.

Computer system 12 typically includes a variety of computer systemreadable media. Such media may be any available media that is accessibleby computer system 12, and it includes both volatile and non-volatilemedia, removable and non-removable media.

System memory 28 can include computer system readable media in the formof volatile memory, such as random access memory (RAM) 30 and/or cachememory 32. Computer system 12 may further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 34 can be provided forreading from and writing to a nonremovable, non-volatile magnetic media(not shown and typically called a “hard drive”). Although not shown, amagnetic disk drive for reading from and writing to a removable,non-volatile magnetic disk (e.g., a “floppy disk”), and an optical diskdrive for reading from or writing to a removable, non-volatile opticaldisk such as a CD-ROM, DVD-ROM or other optical media can be provided.In such instances, each can be connected to bus 18 by one or more datamedia interfaces. As will be further depicted and described below,memory 28 may include at least one program product having a set (e.g.,at least one) of program modules that are configured to carry out thefunctions of embodiments of the invention.

Program/utility 40, having a set (at least one) of program modules 42,may be stored in memory 28 by way of example, and not limitation, aswell as an operating system, one or more application programs, otherprogram modules, and program data. Each of the operating system, one ormore application programs, other program modules, and program data orsome combination thereof, may include an implementation of a networkingenvironment. Program modules 42 generally carry out the functions and/ormethodologies of embodiments of the invention as described herein.

Computer system 12 may also communicate with one or more externaldevices 14 such as a keyboard, a pointing device, a display 24, etc.;one or more devices that enable a user to interact with computer system12; and/or any devices (e.g., network card, modem, etc.) that enablecomputer system 12 to communicate with one or more other computingdevices. Such communication can occur via Input/Output (I/O) interfaces22. Still yet, computer system 12 can communicate with one or morenetworks such as a local area network (LAN), a general wide area network(WAN), and/or a public network (e.g., the Internet) via network adapter20. As depicted, network adapter 20 communicates with the othercomponents of computer system 12 via bus 18. It should be understoodthat although not shown, other hardware and/or software components couldbe used in conjunction with computer system 12. Examples, include, butare not limited to: microcode, device drivers, redundant processingunits, external disk drive arrays, RAID systems, tape drives, and dataarchival storage systems, etc.

FIG. 2 shows an exemplary system 100 in accordance with aspects of theinvention. The system includes a computer device 102, having a displayor screen 104, a processor 106 and a relationship visualization andcontrol module 108 (hereafter relationship module 108). Computer device102 also includes a power source 110, and a user interface 112, depictedas a graphic user interface (GUI) or touchscreen in FIG. 2. Althoughdepicted as a touchscreen, it should be understood that user interface112 can be a mouse, a computer keyboard, or other type of user interfacedevice. Further, while computer device 102 is shown as a mobilecomputing device, it should be understood that computer device 102 maybe any other suitable computing device, such as a smartphone, tabletcomputer, smart watch, laptop computer, or desktop computer. It shouldalso be appreciated that computer device 102 may be in the form ofcomputer system 12 of FIG. 1, processor 106 may be in the form ofprocessing unit 16 of FIG. 1, and relationship module 108 may be in theform of one or more program modules 42 of FIG. 1.

In embodiments, computer device 102 is in communication with a serviceprovider 114 through a network 116. Network 116 may be any suitablecommunication network or combination of networks, such as a local areanetwork (LAN), a general wide area network (WAN), and/or a publicnetwork (e.g., the Internet).

Still referring to FIG. 2, relationship module 108 of the processor 106is configured to perform one or more of the functions described herein.In embodiments, relationship module 108 is configured to diagramapplication relationships on screen 104 and enable management of therelationships through user interface 112. In aspects, relationshipmodule 108 causes a relationship information screen 120 to be displayedon screen 104, wherein the relationship information screen 120 is aspecialized screen. In other aspects, relationship information screen120 can be in the form of the current desktop view of a user. Inembodiments, relationship information screen 120 displays a relationshipdiagram depicting a primary application icon or primary app 122, otherapplication icons (e.g., 124 a-124 e) and computer device resource icons(e.g., 126 a-126 g). Icons representing any application or computerdevice resource may be included on relationship information screen 120,including, for example, icons representing social media applications,global positioning system (GPS) applications, wireless networkresources, Bluetooth applications, computer device memory, energyresource (e.g., battery), contact lists, computer browser applications,telephone applications, music applications, email applications,microphone applications, camera applications, touch screen applicationsetc. In embodiments, a user may customize relationship informationscreen 120 to include only select application and computer deviceresource icons.

In aspects, relationship module 108 is configured to displayrelationship lines (e.g., 130 a-130 d) between a primary application orprimary app (e.g., 122) and other applications (e.g. 124 a-124 e) andcomputer device resources (e.g. 126 a-126 g). Relationship linesvisually convey information to a user regarding the relationship betweenthe primary app and other applications and/or computer device resources.The relationship information conveyed by relationship information screen120 may include information regarding one or more parameters of interestto a user. Parameters may include, for example, the number ofrelationships, the current application or resource utilized, volume oftraffic, an amount of personal information accessible to the primaryapplication, how often information is accessed, one-way communication,two-way communication, historical utilization, the amount of a resourceutilized, a potential relationship between a primary app and anotherapplication and/or resource, read access, write access, access to securedata, etc. For example, and without limitation, a relationship line mayconvey information that the primary app (e.g., 122) has access to aphoto library of the device, a GPS location module of the device, toread/send email through an email application, or has access to a user'scontact list on the device.

In embodiments, plural relationship lines are simultaneously displayedfor a single primary app. For example, as shown in FIG. 2, relationshiplines 130 a-130 d are simultaneously displayed to graphically depictrespective relationships between primary app 122 and plural otherapplications 126 a-126 f and resources 124 a, 124 e. In this manner,implementations of the invention permit a user to concurrently see allrelationships associated with a particular application. Further, inembodiments, no relationship line between a primary app and anotherapplication and/or resource conveys to a user that there is nointeraction between the primary app and the other application/and orresource. For example, as depicted in FIG. 2, there is no relationshipline drawn between primary app 122 and the icon for resource 126 g,thereby indicating that primary app 122 does not interact with resource126 g.

In embodiments, relationship lines have a thickness value associatedwith a line thickness or line weight that visually conveys information.The thickness value can correlate with the intensity, degree or value ofa relationship between the primary app and the other application and/orresource. By way of example, primary app 122 of FIG. 2 may be an iconrepresenting a social media application and resource 126 e may be anicon representing a battery, wherein relationship line 130 c depicts thebattery power used by the social media application. In this example,line 130 c is thick, representing a high battery power usage by primaryapp 122.

Relationship lines may also have a line color, a line type (e.g., dashedor dotted) and/or a line behavior (e.g., blinking lines) that impartsadditional relationship information. For example, line 130 c may bedisplayed in a bright red color when the battery power used by theprimary app 122 exceeds a predetermined threshold value, in order toalert the user of this undesirable relationship state. By way of anotherexample, a hollow line 130 d between primary app 122 and anotherapplication 124 e (e.g., a GPS application) may indicate that therelationship has been disabled or is otherwise inactive. In anotherexample, a dashed line 130 b indicates that there is read only accessbetween primary app 122 and resource 126 a (e.g., a computer devicememory).

FIG. 3 shows a flowchart of a method in accordance with aspects of theinvention. Steps of the method of FIG. 3 may be performed in theenvironment illustrated in FIG. 2, and are described with reference toelements shown in FIG. 2.

At step 200 a user selects a primary app (e.g., 122). The primary appmay be any application of interest to a user, such as a social mediaapplication. The selection of a primary app can be accomplished anynumber of ways. In one embodiment, the invention is implemented at theOS level and a special desktop page, such as relationship informationscreen 120, is defined. A user is able to drag an application icon(e.g., 122) from another page to the special desktop page (e.g.,relationship information screen 120). This action does not actually moveor copy the selected application, but creates a visual representation ofthe application using its icon. Once “dropped” on the special desktoppage, the application can be considered “selected” by relationshipmodule 108 in accordance with step 200. By way of another example, auser may right click on a primary app icon to bring up a right mousemenu enabling a user to select an “execute” function, wherebyrelationship module 108 would execute steps of the present inventionagainst the selected application. In embodiments, a user can drag anapplication icon to an icon depicting the relationship visualizationsystem 100 of the present invention, whereby relationship module 108will execute steps of the present invention against the selectedapplication.

At step 202, relationship module 108 recognizes that a primary app wasselected at step 200 and retrieves all relevant relationship informationregarding the primary app. Relationship information regarding theprimary app can come from any number of sources including, but notlimited to: OS security settings (e.g., iOS entitlements), OSconfiguration management data base (CMDB), a list of all libraries boundto the primary app binary (e.g., network library, Bluetooth library,address book library, etc). This list of sources can change over timeand may be device and OS specific. For example, if the primary app is asocial media app, relationship information regarding the amount ofpower, memory and data consumed by the social media application, and theamount and type of data access available to the social media applicationis retrieved.

At step 204, relationship module 108 calculates a thickness value foreach relationship. The thickness value can be based on one or moreparameters (e.g., data usage or battery power). One of ordinary skill inthe art can understand that a number of different algorithms can beutilized to calculate the thickness value in accordance with theinvention. In embodiments, an algorithm is utilized which states thateach active relationship (e.g., enabled parameter) has a thickness valueof 0.5. The total calculated value is the sum of all activerelationships between the primary application and the other applicationor computer device resource at issue. In this way, a thickness value canbe created for every application and/or computer device resource that aprimary app interacts with. It should be understood that the thicknessvalue is not limited to a particular unit of measure and can representcentimeters, inches, or standard word processing line weights, forexample.

In aspects, relationship module 108 can generate an internal tableillustrating the relationship data relied on in calculating thethickness value. An example of such a table 132 is illustrated in FIG.4. Assuming the algorithm discussed above is utilized, the thicknessvalue for a social media application in accordance with FIG. 4 (wherecheck marks represent an enabled parameter and an “X” represents adisabled parameter) would be the sum all active relationships betweenthe social media application and respective email and game applications.Table 132 depicts only one active relationship between the social mediaapp and the email application (i.e. read access to friends), andtherefore, the thickness value for the relationship line between thesocial media application and the email application would be 1×0.5=0.5.However, table 132 depicts three active relationships between the socialmedia app and the game application (i.e. read access to friends, post totimeline, and read timeline), and therefore, the thickness value for therelationship line between the social media application and the gameapplication would be 3×0.5=1.5.

In embodiments of the invention, a final adjustment is made byrelationship module 108 to keep the thickness of a relationship linerelative to all other relationship lines being presented in relationshipinformation screen 120. This may be used to prevent a line that lookslike a box. By way of example, if calculated values of five relationshiplines are: 0.5, 0.5, 1, 1.5 and 10, the thickness for the “10” line canbe drawn as a “2” to keep relationship lines more proportional. Inembodiments, the thickness of a relationship line represents a value ofthe current use or historical use of a resource by the primary app. Forexample, a very thick line (e.g., 130 c) can represent very high memoryutilization, while a relatively thin line (e.g., 130 a) can representlittle memory use. A simple algorithm may be utilized to determinerelative thickness based upon percent (%) of the memory used versustotal system memory.

Referring back to FIG. 3, after a thickness value is calculated at step204, relationship module 108 may optionally calculate a color or linetype value for each relationship at step 206. In accordance with aspectsof the invention, color or line type calculations can be performedutilizing a simple look up table of user preferences, which are assignedcolors and/or line types to specify different relationships. The colorsand/or line type can also represent meaning based upon the type ofresource or application the relationship line is extending to. In oneexample, the color red indicates that the primary app accesses securedata, light blue indicates one way read access-in, dark blue indicatesone way read access-out, and black indicates two way read access. By wayof another example, if a relationship line is extending from a primaryapp 122 to a power source icon, the color green can be utilized toindicate that the usage is low, the color yellow can be utilized toindicate that the usage is medium, and the color red can be utilized toindicate that the usage is high. Optionally, line type (e.g., dashedlines, dotted lines, etc.) can be utilized to impart information to auser. By way of example, a relationship line can be depicted as a hollowline (e.g., 130 d) to indicate that there is a potential relationship(e.g., a disabled parameter that can be enabled by a user) between aprimary app and another application and/or resource.

At step 208, relationship module 108 causes icons for each participatingapplication and/or computer device resource to be displayed onrelationship information screen 120. In embodiments, all applicationsand computer device resources having a relationship or potentialrelationship with the primary app are depicted. Alternatively, system100 enables a user to customize relationship information screen 120 toonly show applications and/or resources that are relevant to theconcerns of the user.

At step 210, relationship module 108 causes relationship lines (e.g. 130a-130 d) to be displayed or drawn between the primary app (e.g., 122)and other applications (e.g., 124 a-124 e) and/or resources (e.g., 126a-126 g), using the calculated thickness values from step 204, andoptionally, color and/or line type values from step 206.

FIGS. 3 and 5 will now be referenced with respect to the manner in whicha user may utilize system 100 to manage relationships in accordance withaspects of the invention. At step 212, a user selects a relationshipline. Any manner of selecting a relationship line may be utilized. Byway of example, a user's finger can touch a select relationship lineusing user interface 112.

At step 214, relationship module 108 determines that a user has selecteda relationship line at step 212 and presents a relationship selectiontable (e.g., 134) to the user. A relationship selection table lists oneor more parameter control options (136 a, 136 b), which can be selectedby a user to enable or disable a respective parameter in accordance witha user's wishes. By way of example, a user can select a relationshipline 130 a between a primary app 122 and a telephone application 124 a.

At step 216, after relationship selection table 134 is displayed inaccordance with step 214, the user can select a parameter control option(e.g., 136 a, 136 b) to enable or disable a particular parameter. By wayof example, a user can enable (e.g., check a box) or disable (e.g.,uncheck a box) access of primary app 122 to a call log of telephoneapplication 136 a or enable or disable the ability of the primary app toplace a call through telephone application 136 b.

At step 218, relationship module 108 recognizes the user's command toexecute at least one parameter control action (e.g., the user's commandto enable or disable parameters 136 a, 136 b) and executes the parametercontrol action (e.g., enables or disables a parameter according to theuser's command selection). By way of example, relationship module 108may cause the OS to change permissions in a permissions table accordingto the user selection. In this way, control of a primary app'srelationships with other applications and computer device resources iscontrolled by the OS of the computer device, as opposed to beingcontrolled by the primary app itself. In embodiments, relationshipmodule 108 will update relationship information screen 120 to reflectany changes in relationships between the primary app and the additionalapplications and/or resources. By way of example, if a user disablesparameters 136 a and 136 b of FIG. 5, relationship module 108 causesrelationship line 130 a be updated to reflect this change. For example,relationship line 130 a may be changed to a hollow line to indicate thatthere is no active relationship between primary app 122 and application124 a.

Optionally, at step 220, relationship module 108 can issue an alert to auser. By way of example, relationship module 108 can cause arelationship line to start blinking and/or can cause the relationshipline to change colors (e.g., a bright red color) to indicate anundesirable relationship state. An undesirable relationship state mayinclude a relationship line thickness that exceeds a predeterminedthreshold value. This may occur, for example, if a primary app isutilizing excessive battery power or memory. By way of another example,an alert may be issued if relationship module 108 detects aninappropriate app interaction has occurred, such as if write access intoa computer device's storage is enabled for a primary app (this is howmalware may be deposited onto a phone). In this example, relationshipmodule 108 may cause a relationship line to change from black to abright red color. Optionally, a user may set threshold warning values.Such threshold values may be based on historic interactions between aprimary app and other applications and/or resources. For example,relationship module 108 may recognize when a relationship on asubsequent day is different from the relationship on a previous day, mayrecognize when a non-user implemented change to a relationship occurs,and/or may track average relationship information over time. In oneexample, if data exchanged between a primary app and another applicationexceeds a historic average data exchange by a predetermined value,relationship module 108 may cause a relationship line between theprimary app icon and the other application icon to display in red.

In embodiments, a service provider (e.g., service provider 114), such asa Solution Integrator, could offer to perform the processes describedherein. In this case, the service provider can create, maintain, deploy,support, etc., the computer infrastructure that performs the processsteps of the invention for one or more customers. These customers maybe, for example, any business that uses technology. In return, theservice provider can receive payment from the customer(s) under asubscription and/or fee agreement and/or the service provider canreceive payment from the sale of advertising content to one or morethird parties.

In still another embodiment, the invention provides acomputer-implemented method for visualization and control of applicationinteractions. In this case, a computer infrastructure, such as computersystem 12 (FIG. 1), can be provided and one or more systems forperforming the processes of the invention can be obtained (e.g.,created, purchased, used, modified, etc.) and deployed to the computerinfrastructure. To this extent, the deployment of a system can compriseone or more of: (1) installing program code on a computing device, suchas computer system 12 (as shown in FIG. 1), from a computer-readablemedium; (2) adding one or more computing devices to the computerinfrastructure; and (3) incorporating and/or modifying one or moreexisting systems of the computer infrastructure to enable the computerinfrastructure to perform the processes of the invention.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A computer program product for visualizing and controlling application interactions, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computing device to cause the computing device to: receive a selection of a primary application on the computer device; retrieve information regarding a relationship between the selected primary application and a resource of the computer device; calculate a thickness value for the relationship, wherein the thickness value represents at least one parameter of interest to a user; display icons representing the selected primary application and the resource of the computer device; display at least one relationship line extending between the selected primary application and the resource of the computer device, wherein the at least one relationship line has a line weight based on the thickness value; wherein the resource of the computer device is selected from at least one of the group consisting of: a power source, a memory, a touch screen, a central processing unit and system devices of the computer device.
 2. The computer program product of claim 1, wherein the program instructions further cause the computing device to: calculate a color value for the relationship, wherein the color value represents another parameter of interest to the user and the at least one relationship line has a color based on the color value.
 3. The computer program product of claim 1, wherein the program instructions further cause the computing device to: calculate a line type numeric value for the relationship, wherein the line type represents an additional parameter of interest to the user and the at least one relationship line has a line type based on the line type numeric value.
 4. The computer program product of claim 1, wherein the parameter of interest is one of: a number of relationships; the current application or resource utilized; volume of traffic; an amount of personal information accessible to the selected primary application; how often information is accessed; one-way communication; two-way communication; historical utilization; an amount of the resource utilized; a potential relationship between the selected primary application and the resource; read access; write access; access to secure data.
 5. The computer program product of claim 1, wherein the program instructions further cause the computing device to: receive a selection of the at least one relationship line; display at least one parameter control action for the at least one parameter of interest; receive a command to execute the at least one parameter control action; and execute the at least one parameter control action, wherein the execution of the parameter control action changes a relationship between the selected primary application and the resource of the computer device.
 6. The computer program product of claim 1, wherein the program instructions further cause the computing device to: determine that an undesirable relationship state exists between the selected primary application and the resource of the computer device; and display an alert to the user through the at least one relationship line based on the determining that the undesirable relationship state exists.
 7. The computer program product of claim 6, wherein the alert comprises displaying the at least one relationship line in a color, in a line type, in a line behavior, or in a combination thereof, wherein the color, line type and/or line behavior is indicative of the undesirable relationship state.
 8. A system for visualizing and controlling application interactions, comprising: a CPU, a computer readable memory and a computer readable storage medium associated with a computing device; program instructions to receive a selection of a primary application; program instructions to retrieve information regarding a first set of relationships between the selected primary application and another application; program instructions to retrieve information regarding a second relationship between the selected primary application and a resource of the computing device; program instructions to display icons representing the selected primary application, the other application, and the resource of the computing device; program instructions to display a first relationship line between the selected primary application and the other application, wherein the relationship line has a line thickness based on a total numeric thickness value of the first set of relationships; and program instructions to display a second relationship line between the second primary application and the resource of the computing device, wherein each of the first and second relationship lines has a line weight, line type, line behavior, or line color that visually imparts relationship information to a user, wherein the program instructions are stored on the computer readable storage medium for execution by the CPU via the computer readable memory.
 9. The system of claim 8, further comprising: program instructions to calculate the numeric thickness value of the first set of relationships and a numeric thickness value for the second relationship, wherein the numeric thickness values represents a degree, value, or intensity of the respective first set of relationships and the second relationship, and wherein each of the first and second relationship lines have a line weight that visually conveys the degree, value or intensity of the respective first set of relationships and second relationship to the user.
 10. The system of claim 8, further comprising: program instructions to calculate a color value or a line type value for each of the first set of relationships and the second relationship, wherein the color or line type value represents a parameter of interest, and wherein the respective first and second relationship lines are displayed with a color or line type that visually conveys information regarding the parameter of interest to the user.
 11. The system of claim 8, wherein the information includes information regarding one or more selected from the group consisting of: a number of relationships; the current application or resource utilized; volume of traffic; an amount of personal information accessible to the selected primary application; how often information is accessed; one-way communication; two-way communication; historical utilization; the amount of a resource utilized; a potential relationship between a selected primary application and another application and/or resource; read access; write access; and access to secure data.
 12. The system of claim 8, wherein the other application and the resource of the computing device include one or more of: a social media application; a GPS application; a wireless network resource; a Bluetooth application; a computer device memory; an energy resource; a contact list; a computer browser application; a telephone application; a music application; an email application; a microphone application; a camera application; and a touch screen application.
 13. The system of claim 8, further comprising: program instructions to receive a selection of one of the first and second relationship lines; program instructions to display at least one parameter control action for at least one parameter of interest, wherein the at least one parameter control action is configured to allow a user to enable or disable the at least one parameter of interest; program instructions to receive a command to execute the at least one parameter control action; and program instructions to execute the at least one parameter control action.
 14. The system of claim 8, further comprising: program instructions to display an alert to the user through at least one of the first and second relationship lines.
 15. The system of claim 8, further comprising: program instructions to determine that an undesirable relationship state exists between the selected primary application and the resource of the computer device; and program instructions to display an alert to the user through the second relationship line based on the determining that the undesirable relationship state exists.
 16. A computer-implemented method for visualizing and controlling application interactions, comprising: retrieving, by a computer device, information regarding a first relationship between a primary application and another application; retrieving, by the computer device, information regarding a second relationship between the primary application and a computer device resource; displaying, by the computer device, icons representing the primary application, the other application, and the computer device resource; determining, by the computer device, that at least one of the first and second relationships is in an undesirable state based on at least one predetermined threshold value; displaying, by the computer device, a first relationship line between the primary application and the other application; displaying, by the computer device, a second relationship line between the primary application and the computer device resource, wherein each of the first and second relationship lines has a line weight, line type, line behavior, or line color that imparts information regarding at least one parameter to a user; retrieving, by the computer device, a selection of one of the first and second relationship lines; displaying, by the computer device, at least one parameter control action based on the selection; receiving, by the computer device, a command to execute the at least one parameter control action; and executing, by the computer device, the at least one parameter control action to cause the operating system of the computing device to change permissions in a permission table based on the received command such that the primary applications relationship with one of the other application and the computer device resource is controlled by the operating system of the computing device.
 17. The method of claim 16, wherein the at least one parameter control action allows the user to enable or disable the at least one parameter.
 18. The method of claim 16, further comprising: calculating, by the computer device, a thickness value for each of the first and second relationships, wherein the thickness value represents a degree, value, or intensity of the respective first and second relationship, and wherein each of the first and second relationship lines have a line weight that visually conveys the degree, value or intensity of the respective first and second relationship to the user.
 19. The method of claim 16, further comprising: displaying, by the computer device, an alert to the user through at least one of the first and second relationship lines based on the determining that the at least one of the first and second relationships is in the undesirable relationship state.
 20. The method of claim 16, further comprising: displaying, by the computer device, the first and second relationship lines with a color, line type, line behavior, or combination thereof, wherein the line color, line type and/or line behavior visually conveys additional information regarding at least one parameter to the user. 